package com.hechi.demo.service;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hechi.demo.dto.OrdersDto;
import com.hechi.demo.dto.OrdersListRequestDto;
import com.hechi.demo.dto.ResultResponse;
import com.hechi.demo.mapper.OrdersMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class OrdersServiceImpl {
    @Autowired
    OrdersMapper ordersMapper;

    public ResultResponse getOrderInfo(Integer orderId){

     //  return new ResultResponse(ResultResponse.SUCCESS_CODE,ResultResponse.SUCCESS_DESC,ordersMapper.selectByOrderId(orderId));
        OrdersDto ordersDto=ordersMapper.selectByOrderId(orderId);
        return new ResultResponse(ResultResponse.SUCCESS_CODE,ResultResponse.SUCCESS_DESC,ordersDto);
    }


    public ResultResponse page(OrdersListRequestDto ordersListRequestDto){
        /*查询：调用mapper查询 条件有；手机号码  姓名 性别  套餐编号  体检日期  订单状态

订单编号 手机号码  真实姓名 性别  套餐名称  医院名称 体检日期 订单状态 总页数  总记录数 当前页码

from orders o,users u,setmeal s,hospital h
where o.userId=u.userId
           and
           s.smId=o.smId
           and
           h.hpId=o.hpId
           and
           u.userId=#{userId}
            手机号码  姓名 性别  套餐编号  体检日期  订单状态
         */
        //第二种，Mapper接口方式的调用，推荐这种使用方式。
       // PageHelper.startPage(1, 10);
      //  List<Country> list = countryMapper.selectIf(1);
        PageHelper.startPage(ordersListRequestDto.getPageNum(),ordersListRequestDto.getPageSize());

        List<OrdersDto> ordersDtoList=ordersMapper.selectByCondition(ordersListRequestDto);

        //为了返回结果符合前端需求，需要整合返回的数据：PageInfo
        PageInfo pageInfo=new PageInfo(ordersDtoList);  //这行代码执行的效果是：pageInfo对象中的所有属性都有值了
        //总页数  总记录数 当前页码
        System.out.println("pageNum:"+pageInfo.getPageNum());
        System.out.println("pageSize:"+pageInfo.getPageSize());
        System.out.println("totalPages:"+pageInfo.getPages());
        System.out.println("totalCount:"+pageInfo.getTotal());
        System.out.println("Data:"+pageInfo.getList().size());

      //return new ResultResponse(ResultResponse.SUCCESS_CODE,ResultResponse.SUCCESS_DESC,ordersDtoList);
        return new ResultResponse(ResultResponse.SUCCESS_CODE,ResultResponse.SUCCESS_DESC,pageInfo);

    }
}
